// import 'dart:convert';
// import 'dart:developer' as developer;
//
// import 'package:electronic_pet/economic_date.dart';
// import 'package:electronic_pet/wolai_api.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_json_view/flutter_json_view.dart';
// import 'package:local_notifier/local_notifier.dart';
//
// import 'chat_gpt.dart';
//
// // 判断用哪种方法操作
// class Adjust extends StatefulWidget {
//   Adjust(
//       {Key? key,
//       required this.data,
//       required this.viewKey,
//       required this.controller
//       })
//       : super(key: key);
//   String data;
//   final ScrollController controller;
//   final Key viewKey;
//
//   @override
//   State<Adjust> createState() => _Adjust();
// }
//
// class _Adjust extends State<Adjust> {
//   List<Widget> _buildRes = const [SelectableText("")];
//   // 第一次点击刷新按钮时，会读取剪贴板内容
//   @override
//   void initState() {
//     getTextFromClipboard();
//     super.initState();
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     final viewWidth = MediaQuery.of(context).size.width;
//     return Expanded(
//         child: SingleChildScrollView(
//             controller: widget.controller,
//             child: SizedBox(
//                 key: widget.viewKey,
//                 width: viewWidth,
//                 child: Column(children: [..._buildRes]))));
//   }
//
//   @override
//   void didUpdateWidget(covariant Adjust oldWidget) {
//     getTextFromClipboard();
//     super.didUpdateWidget(oldWidget);
//   }
//
//   Future<void> getTextFromClipboard() async {
//     // ClipboardData? newClipboardData =
//     //     await Clipboard.getData(Clipboard.kTextPlain);
//     // String? data = newClipboardData?.text;
//     String data = widget.data;
//     // Add in main method.
//     await localNotifier.setup(
//       appName: 'local_notifier_example',
//       // The parameter shortcutPolicy only works on Windows
//       shortcutPolicy: ShortcutPolicy.requireCreate,
//     );
//
//     if ((RegExp("^wolai.*")).hasMatch(data)) {
//       setState(() {
//         _buildRes = [WolaiApi(data: data)];
//       });
//     } else if (isUnixTime(data)) {
//       setState(() {
//         var dateTime =
//             DateTime.fromMillisecondsSinceEpoch(int.parse(data)).toString();
//         _buildRes = [Text(dateTime)];
//       });
//     } else if (RegExp("^ai.*").hasMatch(data)) {
//       data = data.substring(
//         2,
//       );
//       setState(() {
//         _buildRes = [ChatGPT(question: data)];
//       });
//     } else if (existJson(data)) {
//       developer.log('识别到json数据，提取中');
//       final notification = LocalNotification(
//         title: '识别到json数据！',
//       );
//       notification.show();
//       setState(() {
//         _buildRes = extractJsonFromStr(data)
//             .map((e) => isJson(e) ? JsonView.string(e) : SelectableText(e))
//             .toList();
//       });
//     }
//   }
//
//   bool isJson(String? data) {
//     if (data == null) {
//       return false;
//     }
//     try {
//       json.decode(data);
//       return true;
//     } on FormatException {
//       return false;
//     }
//   }
//
//   bool isUnixTime(String data) {
//     try {
//       int.parse(data);
//       return true;
//     } on Exception {
//       return false;
//     }
//   }
//
//   // 判断字符串里是否存在 json 数据
//   bool existJson(String data) {
//     if (isJson(data)) {
//       return true;
//     }
//     // 找出所有 json 字符串
//     for (int i = 0; i < data.length; i++) {
//       if (['{', '['].contains(data[i])) {
//         for (int j = data.length - 1; j > i; j--) {
//           // 左闭右开，所以要 j+1
//           var subString = data.substring(i, j + 1);
//           if (isJson(subString)) {
//             return true;
//           }
//         }
//       }
//     }
//     return false;
//   }
//
//   // 从字符串中抽取json数据
//   List<String> extractJsonFromStr(String data) {
//     List<String> res = [];
//     Set<int> jsonList = {};
//     // 找出所有 json 字符串
//     for (int i = 0; i < data.length; i++) {
//       if (['{', '['].contains(data[i])) {
//         for (int j = data.length - 1; j > i; j--) {
//           // 左闭右开，所以要 j+1
//           var subString = data.substring(i, j + 1);
//           if (isJson(subString)) {
//             jsonList.add(i);
//             jsonList.add(j + 1);
//             i = j;
//             break;
//           }
//         }
//       }
//     }
//     // 以 json 为切割点，将原字符串切割
//     int start = 0;
//     for (int end in jsonList) {
//       res.add(data.substring(start, end));
//       start = end;
//     }
//     // 处理结尾
//     res.add(data.substring(
//       start,
//     ));
//     return res;
//   }
// }
//
